import React from 'react';
import { Form, Select, Card, Breadcrumb, Icon, Radio, Checkbox, Button, Row, Col } from 'antd';
import axios from '../../components/Engineering/axios'
import BasicAutocomplete from './components/basic-autocomplete'
import CustomAutocomplete from './components/custom-autocomplete'
import CustomInputComponent from './components/custom-input-component'
import CaseInsensitiveAutoComplete from './components/case-insensitive-autoComplete'
import QueryModeDetermineCategories from './components/query-mode-determine-categories'
import QueryPatternsUncertainCategories from './components/query-patterns-uncertain-categories'

const { Option, OptGroup } = Select;
const { Item: FormItem } = Form;


class AutoCompleteFrom extends React.Component {
 
  render() {
    const { getFieldDecorator } = this.props.form
    const formItemLayout = {
      labelCol: {
        xs: { span: 24 },
        sm: { span: 4 },

      },
      wrapperCol: {
        xs: { span: 24 },
        sm: { span: 16 },
      }
    }
    return (
      <>
        <Card title="基本使用。通过 dataSource 设置自动完成的数据源" style={{ marginTop: 10 }}>
        <BasicAutocomplete />
        </Card>

        <Card title="也可以直接传 AutoComplete.Option 作为 AutoComplete 的 children，而非使用 dataSource" style={{ marginTop: 10 }}>
        <CustomAutocomplete />
        </Card>

        <Card title="自定义输入组件" style={{ marginTop: 10 }}>
        <CustomInputComponent />
        </Card>


        <Card title="不区分大小写的 AutoComplete" style={{ marginTop: 10 }}>
        <CaseInsensitiveAutoComplete />
        </Card>


        <Card title="查询模式 - 确定类目" style={{ marginTop: 10 }}>
        <QueryModeDetermineCategories />
        </Card>

        <Card title="查询模式 - 不确定类目" style={{ marginTop: 10 }}>
        <QueryPatternsUncertainCategories />
        </Card>


      </>
    )

  }
}

export default Form.create({ name: 'AutoCompleteFrom' })(AutoCompleteFrom)




// API#
// const dataSource = ['12345', '23456', '34567'];
// <AutoComplete dataSource={dataSource} />;
// 参数	                            说明	类型	默认值	版本
// allowClear	                      支持清除, 单选模式有效	boolean	false	
// autoFocus	                      自动获取焦点	boolean	false	
// backfill	                        使用键盘选择选项的时候把选中项回填到输入框中	boolean	false	
// children                         (自定义输入框)	自定义输入框	HTMLInputElement 
                                                                //HTMLTextAreaElement 
                                                                // React.ReactElement<InputProps>	<Input />	
// children                         (自动完成的数据源)	自动完成的数据源	React.ReactElement<OptionProps> 
                                                                // Array<React.ReactElement<OptionProps>>	-	
// dataSource	                      自动完成的数据源	DataSourceItemType[]		
// defaultActiveFirstOption	        是否默认高亮第一个选项。	boolean	true	
// defaultValue	                    指定默认选中的条目	string|string[]| 无	
// disabled	                        是否禁用	boolean	false	
// filterOption	                    是否根据输入项进行筛选。当其为一个函数时，会接收 inputValue option 两个参数，当 option 符合筛选条件时，应返回 true，反之则返回 false。	boolean or function(inputValue, option)	true	
// getPopupContainer	              菜单渲染父节点。默认渲染到 body 上，如果你遇到菜单滚动定位问题，试试修改为滚动的区域，并相对其定位。示例	Function(triggerNode)	() => document.body	3.19.4
// optionLabelProp	                回填到选择框的 Option 的属性值，默认是 Option 的子元素。比如在子元素需要高亮效果时，此值可以设为 value。	string	children	
// placeholder	                    输入框提示	string	-	
// value	                          指定当前选中的条目	string|string[]|{ key: string, label: string|ReactNode }|Array<{ key: string, label: string|ReactNode }>	无	
// onBlur	                          失去焦点时的回调	function()	-	3.6.5
// onChange	                        选中 option，或 input 的 value 变化时，调用此函数	function(value)	无	
// onFocus	                        获得焦点时的回调	function()	-	3.6.5
// onSearch                         搜索补全项的时候调用	function(value)	无	
// onSelect	                        被选中时调用，参数为选中项的 value 值	function(value, option)	无	
// defaultOpen	                    是否默认展开下拉菜单	boolean	-	3.9.3
// open	                            是否展开下拉菜单	boolean	-	3.9.3
// onDropdownVisibleChange	        展开下拉菜单的回调	function(open)	-	3.9.3

// 方法#
// 名称	                            描述	版本
// blur()	                          移除焦点	
// focus()	                        获取焦点